## all same blocks
all_SCB_k3 = ['SCB_k3']*10
all_SCB_k5 = ['SCB_k5']*10
all_SCB_k7 = ['SCB_k7']*10
all_SRB_k3 = ['SRB_k3']*10
all_SRB_k5 = ['SRB_k5']*10
all_SRB_k7 = ['SRB_k7']*10
all_SIB_k3_e1 = ['SIB_k3_e1']*10
all_SIB_k3_e3 = ['SIB_k3_e3']*10
all_SIB_k5_e1 = ['SIB_k5_e1']*10
all_SIB_k5_e3 = ['SIB_k5_e3']*10

## Our architecture 
AutoSNN = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k3', 'SRB_k5', 'max_pool_k2']

## AutoSNN with different lambda (Table 2)
AutoSNN_0 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2'] # lambda = 0
AutoSNN_16 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2'] # lambda = -0.16
AutoSNN_24 = ['skip_connect', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2'] # lambda = -0.24

## 10 randomly sampled architecture (Random sampling in Table 5)
random_1 = ['SCB_k3','SRB_k5','SRB_k3','skip_connect','SRB_k5','skip_connect','SRB_k5','SRB_k5']
random_2 = ['SRB_k5','SRB_k5','skip_connect','SCB_k5','SRB_k5','SCB_k5','skip_connect','SRB_k5']
random_3 = ['SCB_k3','SRB_k5','SCB_k5','SRB_k3','SRB_k5','SCB_k5','SCB_k5','SRB_k5']
random_4 = ['SCB_k5','SRB_k5','SCB_k3','skip_connect','SRB_k5','SCB_k3','SCB_k5','SRB_k5']
random_5 = ['SRB_k5','SRB_k5','SCB_k3','skip_connect','SRB_k5','skip_connect','SRB_k3','SRB_k5']
random_6 = ['SCB_k3','SRB_k5','SRB_k5','SRB_k3','SRB_k5','SCB_k3','SRB_k3','SRB_k5']
random_7 = ['SCB_k5','SRB_k5','SCB_k3','SRB_k5','SRB_k5','SCB_k3','SCB_k5','SRB_k5']
random_8 = ['SCB_k5','SRB_k5','skip_connect','skip_connect','SRB_k5','SCB_k5','SRB_k3','SRB_k5']
random_9 = ['SCB_k3','SRB_k5','SRB_k3','SRB_k3','SRB_k5','SCB_k5','SRB_k3','SRB_k5']
random_10 = ['skip_connect','SRB_k5','SRB_k3','skip_connect','SRB_k5','SRB_k3','SCB_k5','SRB_k5']

## WS + random search (in Table 5)
random_search_0 = ['SCB_k5', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2'] # lambda = 0
random_search_8 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'SRB_k3', 'max_pool_k2', 'SCB_k3', 'SRB_k5', 'max_pool_k2'] # lambda = -0.08

## Architecture search without spiking neurons (Table 7)
AutoSNN_ANN_space = ['SRB_k5', 'max_pool_k2', 'SRB_k3', 'SCB_k3', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2']

# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR100_SNN_Adam_600ep_2022/
# lmabda = -0.08
# val acc: 0.5524 spikes: 431765 fitness: 0.5576, 4060 Laptop, halffloat train
AutoSNN_64_CIFAR100_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR100_SNN_Adam_600ep_2022/
# lmabda = -0.08
# val acc: 0.5410 spikes: 444760 fitness: 0.5435
AutoSNN_64_CIFAR100_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SCB_k3', 'max_pool_k2', 'SRB_k3', 'skip_connect', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_SVHN_SNN_Adam_600ep_2022/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.9054 spikes: 132129 fitness: 0.9732
AutoSNN_64_SVHN_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['skip_connect', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR10_SNN_Adam_600ep_2022/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8763 spikes: 263357 fitness: 0.8894
AutoSNN_64_CIFAR10_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_16_CIFAR10DVS_Adam_2022_T_20_init_tau_2.0_vth_1.0_neuron_PLIF_split_by_number_normalization_None/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.6539 spikes: 1402302 fitness: 0.6531
AutoSNN_16_CIFAR10DVS_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SCB_k5', 'max_pool_k2', 'SCB_k5', 'SRB_k3', 'max_pool_k2', 'SRB_k3', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_Tiny-ImageNet-200_SNN_Adam_600ep_2022/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.3750 spikes: 895338 fitness: 0.3757
AutoSNN_64_Tiny_ImageNet_200_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SCB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k3', 'SCB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_16_DVS128Gesture_Adam_2022_T_20_init_tau_2.0_vth_1.0_neuron_PLIF_split_by_number_normalization_None/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.9258 spikes: 643451 fitness: 0.9280
AutoSNN_16_DVS128Gesture_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SCB_k5', 'max_pool_k2', 'SRB_k5', 'SCB_k3', 'max_pool_k2', 'SCB_k5', 'skip_connect', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR100_SNN_Adam_600ep_2022/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.5396 spikes: 429532 fitness: 0.5436
AutoSNN_64_CIFAR100_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SCB_k3', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR100_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.5334 spikes: 477041 fitness: 0.5367
AutoSNN_64_CIFAR100_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k3', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, NVIDIA GeForce RTX 4060 Laptop GPU, with halffloat trianing
# val acc: 0.8814 spikes: 291232 fitness: 0.8888
AutoSNN_64_CIFAR10_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SCB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k3', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8751 spikes: 268266 fitness: 0.8868
AutoSNN_64_CIFAR10_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_CIFAR100_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.5279 spikes: 477196 fitness: 0.5312
AutoSNN_64_CIFAR100_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k3', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_16_CIFAR10DVS_Adam_2022_T_20_init_tau_2.0_vth_1.0_neuron_PLIF_split_by_number_normalization_None/batch_size_48/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.6428 spikes: 1325512 fitness: 0.6449
AutoSNN_16_CIFAR10DVS_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'skip_connect', 'SRB_k5', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_16_DVS128Gesture_Adam_2022_T_20_init_tau_2.0_vth_1.0_neuron_PLIF_split_by_number_normalization_None/batch_size_48/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.9258 spikes: 655397 fitness: 0.9267
AutoSNN_16_DVS128Gesture_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'SRB_k3', 'max_pool_k2', 'skip_connect', 'SRB_k3', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_Tiny-ImageNet-200_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.3725 spikes: 866680 fitness: 0.3742
AutoSNN_64_Tiny_ImageNet_200_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k3', 'skip_connect', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_SVHN_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.9039 spikes: 141852 fitness: 0.9638
AutoSNN_64_SVHN_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['skip_connect', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SCB_k5', 'SRB_k3', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_64_SVHN_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.9168 spikes: 177680 fitness: 0.9602
AutoSNN_64_SVHN_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2', 'SRB_k3', 'SCB_k3', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_16_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8137 spikes: 113740 fitness: 0.8204
AutoSNN_16_CIFAR10_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k3', 'SCB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_16_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8229 spikes: 110301 fitness: 0.8318
AutoSNN_16_CIFAR10_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_32_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8660 spikes: 189613 fitness: 0.8711
AutoSNN_32_CIFAR10_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SCB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k3', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_32_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8654 spikes: 182856 fitness: 0.8730
AutoSNN_32_CIFAR10_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2', 'SCB_k5', 'SRB_k5', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_128_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8695 spikes: 406046 fitness: 0.8829
AutoSNN_128_CIFAR10_SNN_2022_random_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SCB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'skip_connect', 'max_pool_k2']
# macro_search_result2/uniform_sampling/AutoSNN_128_CIFAR10_SNN_Adam_600ep_2022/batch_size_96/
# lmabda = -0.08, Quadro GP100, with halffloat trianing
# val acc: 0.8735 spikes: 422270 fitness: 0.8842
AutoSNN_128_CIFAR10_SNN_2022_evolution_ACC_pow_spikes_8_99_1 = ['SRB_k5', 'max_pool_k2', 'SCB_k5', 'skip_connect', 'max_pool_k2', 'SRB_k5', 'SCB_k5', 'max_pool_k2']
